Many business applications are developed to operate in a client/server environment. A client/server environment provides a server with server-side code that receives requests from devices executing client-side code. A device that executes client-side code is referred to as a “client.” A server typically functions as a central repository of the business data of the business application, which may be stored using a database management system. The client-side code of the application may include various forms to be displayed within windows of the application. The application may use the forms to display data of the application retrieved from the server by the client or for input of data to be sent to the server for storage.
Although the use of client-side code allows for considerable flexibility in developing business applications, users wanting to access a business application may not have access to a computing device with client-side code. For example, a user who is traveling may only have access to a computer that is provided by a hotel. Such a computer typically will not have the client-side code of the application installed. Furthermore, to prevent destructive software or malware from being installed on the computer, the administrator of the computer may have configured the computer to prevent users (e.g., hotel guests) from installing any software on the computer. As a result, a user cannot access the business application from computers other than those under the user's control.
To overcome the requirement of having to access the business application only through a client, some business applications provide a web server interface through which users can access the application via a web browser. Thus, when available, users can use their own computing devices with client-side code installed to access the business application. When, however, a user's computing device is not available, the user can use a browser to access the business application.
To support access by both client devices and non-client devices (e.g., via a browser), business applications typically need to develop web pages, or more generally display pages, that provide functionality similar to the functionality provided by the forms of the client-side code of the business application. The provider of the business application, however, needs to maintain both the forms and the web pages. The need to maintain both forms and web pages with duplicate functionality is both expensive, time-consuming, and error-prone.
To avoid some of this duplicate effort in maintaining both forms and web pages, some business applications may replace some of their forms with web pages. Thus, when a user requests to display a form that has been replaced with a web page, the client-side code sends a request (e.g., HTTP request) for the web page to the web server for the business application. When the web server receives the request, it populates the web page with the business data as appropriate and sends the web page to the client for display using a browser control.
FIG. 1 illustrates the layout of an example web page used by some business applications. A web page 100 includes a top menu area 101, a left menu area 102, and a content area 103. The menu areas typically contain links to other web pages of the business application. The content area may contain business data of the application and static or dynamic links to other web pages. A static link is a link that is statically set by the web server before the web page is delivered to the requesting device. A dynamic link, in contrast, may be set by the web server, but also can be changed by the requesting device. For example, the web page when it is displayed may detect that the user has input a certain value in a field (e.g., preferred language) and may automatically change a dynamic link to reference a different web page based on that value (e.g., to reference a web page in the preferred language).
A difficulty arises, however, when such a web page is displayed by the client within a window of a business application. Business applications generally provide a consistent user interface for windows in which forms are displayed. FIG. 2 illustrates the layout of an example window used by some business applications. A client window 200 includes a top menu area 201, a left menu area 202, and a form area 203. The menu areas typically contain links to other forms of the business application. When a business application replaces a form with a web page, the content of the web page is displayed in the form area of the window. FIG. 3 illustrates the layout of an example window in which a web page has been displayed in the form area. In this example, a client window 300 displays the client top menu area 201 and the client left menu area 202. The form area 203, however, displays the web page 100 with the web page top menu area 101, the web page left menu area 102, and the web page content area 103.
The layout of FIG. 3 can be confusing to users and lead to inconsistent interactions. Users can be confused by the duplicate top menus and left menus. Moreover, the items of the client menus will lead to forms of the applications (which may or may not be implemented as web pages), while the web page menus will lead to other web pages with similar functionality. In certain instances, however, the business application may want to display a form after a web page, rather than another web page. One technique to avoid some of the difficulties may be to develop one web page for display within a window of the application and another web page with similar functionality for display within a window of a browser. Such a technique of maintaining two web pages, however, has similar inefficiencies as described above to the maintaining of both a form and a web page with similarity functionality.